package com.stylefeng.guns.api.film;

import com.stylefeng.guns.api.film.vo.*;

import java.util.List;

public interface FilmServiceApi {

    /**
     * 获取banner
     * @return BannerVO
     */
    List<BannerVO> getBanners();

    /**
     * FilmVO
     * @param isLimit 是否限制数量
     * @param nums 数量
     * @return
     */
    FilmVO getHotFilms(boolean isLimit, int nums, int nowPage, int sortId, int sourceId, int yearId, int catId);

    /**
     * 获取即将上映的电影[受欢迎程度]
     * @param isLimit 是否限制数量
     * @param nums 数量
     * @return
     */
    FilmVO getSoonFilms(boolean isLimit, int nums, int nowPage, int sortId, int sourceId, int yearId, int catId);

    /**
     * 获取票房排行榜
     * @return List
     */
    List<FilmInfo> getBoxRanking();

    /**
     * 获取人气排行榜
     * @return List
     */
    List<FilmInfo> getExpectRanking();

    /**
     * 获取Top100
     * @return List
     */
    List<FilmInfo> getTop();

    //==============获取影片条件接口

    /**
     * 分类条件
     * @return
     */
    List<CatVO> getCats();

    /**
     * 片源条件
     * @return
     */
    List<SourceVO> getSources();

    /**
     * 获取年代条件
     * @return
     */
    List<YearVO> getYears();

    /**
     * 在正式项目中，推荐大家使用的做法
     * @param isLimit
     * @param nums
     * @param nowPage
     * @param sortId
     * @param sourceId
     * @param yearId
     * @param catId
     * @return
     */
//    FilmVO getHotFilms(boolean isLimit, int nums, int nowPage, int sortId, int sourceId, int yearId, int catId);

    /**
     * 获取即将上映的电影[受欢迎程度]
     * @param isLimit
     * @param nums
     * @param nowPage
     * @param sortId
     * @param sourceId
     * @param yearId
     * @param catId
     * @return
     */
//    FilmVO getSoonFilms(boolean isLimit, int nums, int nowPage, int sortId, int sourceId, int yearId, int catId);

    /**
     * 获取经典电影
     * @param nums
     * @param nowPage
     * @param sortId
     * @param sourceId
     * @param yearId
     * @param catId
     * @return
     */
    FilmVO getClassicFilms(int nums, int nowPage, int sortId, int sourceId, int yearId, int catId);

    /**
     * 根据影片ID或者名称获取影片信息
     * @param searchType
     * @param serachParam
     * @return
     */
    FilmDetalVO getFilmDetal(int searchType, String serachParam);

    /**
     * 获取影片的描述信息
     * @param filmId
     * @return
     */
    FilmDescVO getFilmDesc(String filmId);

    /**
     * 获取图片信息
     * @param uuid
     * @return
     */
    ImgVO getImgs(String uuid);

    /**
     * 获取导演信息
     * @param filmId
     * @return
     */
    ActorVO getDectInfo(String filmId);

    /**
     * 获取演员信息
     * @param filmId
     * @return
     */
    List<ActorVO> getActors(String filmId);
}
